DBeaverからAWS Profile認証を使ってAmazon Athenaに接続する
データアナリティクス事業本部コンサルティングチームの石川です。Athenaコンソールのクエリエディタは、手っ取り早くて便利なのですが、複数のクエリをまとめて実行することができません。Athenaに接続するのに何かおすすめのDB用のGUIツールはないかと聞かれた時に、AWSのマニュアルで紹介されているSQL Workbench/Jも検討しました古さが否めないので、今日は、DBeaverからAWS Profile認証を使ってAmazon Athenaに接続する方法についてご紹介します。
DBeaverとは様々なDBMSに対応しているSQLクライアントツールです。詳しくはこちらをご覧ください。
AWSのコマンドを利用する際に、アクセスキーをaws configre
コマンドでインストールしますが、その時生成されるファイルの中に記載されている設定です。
ちなみにAWS Profileは、ホームディレクトリ直下にある~/.aws/credentials
というファイルです。記載例は、以下のとおりです。
なぜ、AWS Profileを使うのか
Amazon Athenaは、ユーザーID/パスワードの代わりにアクセスキーによってユーザーを認証します。しかし、AWSアカウントごとにIAMユーザーとアクセスキーを作成すると、アクセスキー漏洩による不正利用のリスクやキーローテーションが大変です。そのため、弊社では、1つのアクセスキーから信頼された他のAWSアカウントのロールにスイッチして利用するルールとなっています。そのような背景があり、AWS Profileを使ってAWSのサービスを利用することが求められます。
AWS Profileを使ったAmazon Athenaの接続設定
1. Athenaの接続を作成
左上のアイコンから[新しい接続タイプを選択する]ダイアログを表示して、[Athena]を選択します。下の図では、athena
という文字を入力して、表示の絞り込みをしています。
2. 接続先と認証情報を入力
ユーザーIDとパスワードには、スイッチ元のアクセスキーを入力します。
3. Athenaのドライバのインストール
上の画面の[ドライバのプロパティ]をクリックすると、まだAthenaのドライバのインストールしていないとインストールが促されます。ここでは初回なので[ダウンロード]ボタンを押します。
4. プロファイル名とAwsCredentalProviderClassの設定
ここが、認証にAWS Profileを使って接続する設定になります。設定がプロファイル名(この例では、ishikawa
)とAwsCredentalProviderClassとしてcom.simba.athena.amazonaws.auth.profile.ProfileCredentialsProvider
を設定します。
5. テスト接続
[テスト接続]を押して、接続が確認できたら[終了]を押して、登録完了です。
接続名称は、わかりやすいように適宜、設定することをおすすめします。
Athenaに接続とクエリ実行
Athenaに接続するとデータベースの一覧が表示されます。
複数のクエリを選択して、[複数のタブでステートメントを実行する]を選択して実行します。
2つのタブに結果が表示されます。
まとめ
Athenaコンソールのクエリエディタは、手っ取り早くて便利なのですが、機能的に若干劣るので、PCにインストールするDB用のGUIツールでの利用を望まれることが少なくありません。しかし、アクセスキーをAWS Profileを使ってAmazon Athenaに接続できるツールがあまりありませんでした。その点でDBeaverは、非エンジニアにもおすすめできる素晴らしいツールだと思います。
ちなみに、CLIツール「AthenaCLI」もVery coolなのでこちらもお試しください。